home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / hf^k-5.dms / in.adf / Fastlib.Lha / Examples / Standardbeispiele / SpeedTest / SpeedTest.c < prev   
Encoding:
C/C++ Source or Header  |  1996-12-14  |  4.5 KB  |  187 lines

  1. /*****************************************
  2. **                                                                            **
  3. **                            SpeedTest                                **
  4. **                                                                            **
  5. **            Kopierrecht bei COMPIUTECK             **
  6. **                                                                            **
  7. **        Geschrieben von Matthias Henze        **
  8. **                                                                            **
  9. *************** © 08/12/96 **************/
  10.  
  11. #include <stdio.h>
  12. #include <time.h>
  13. #include <math.h>
  14. #include <clib/exec_protos.h>
  15.  
  16. clock_t timestart;
  17. double z = 0;
  18.  
  19. void end (void)
  20. {
  21. double y;
  22. clock_t timeend;
  23.     timeend = clock ();
  24.     y = ((timeend - timestart) / (double)50);
  25.     printf ("Benötigte Zeit: %.5g  s\n", y);
  26.     z = z + y;
  27. }
  28.  
  29. void main (void)
  30. {
  31.     double *d, x;
  32.     double a = 80.9394;
  33.     double b = -80.9394;
  34.     int *e, i, loop;
  35.  
  36. printf("\nGeben Sie bitte die Anzahl der Testdurchläufe an: "); fflush (stdout);
  37. scanf("%ld",&loop);
  38.  
  39. Forbid ();
  40.  
  41. /*--fabs--*/
  42. printf ("fabs (80.9394)\n");
  43. timestart = clock ();
  44.     for (i = 1; i < loop; i++)
  45.         x = fabs (a);
  46. end();
  47. printf ("Der absolute Betrag von 80.9394 sollte 80.9394 sein und ist: %g\n\n", x);
  48.  
  49. printf ("fabs (-80.9394)\n");
  50. timestart = clock ();
  51.     for (i = 1; i < loop; i++)
  52.         x = fabs (b);
  53. end();
  54. printf ("Der absolute Betrag von -80.9394 sollte 80.9394 sein und ist: %g\n\n", x);
  55.  
  56. /*--floor--*/
  57. printf ("floor (80.9394)\n");
  58. timestart = clock ();
  59.     for (i = 1; i < loop; i++)
  60.         x = floor (a);
  61. end();
  62. printf ("Die nächstkleinere Ganzzahl von 80.9394 sollte 80 sein und ist: %g\n\n", x);
  63.  
  64. printf ("floor (-80.9394)\n");
  65. timestart = clock ();
  66.     for (i = 1; i < loop; i++)
  67.         x = floor (b);
  68. end();
  69. printf ("Die nächstkleinere Ganzzahl von -80.9394 sollte -81 sein und ist: %g\n\n", x);
  70.  
  71. /*--sqrt--*/
  72. printf ("sqrt (9)\n");
  73. timestart = clock ();
  74.     for (i = 1; i < loop; i++)
  75.         x = sqrt (9);
  76. end();
  77. printf ("Die Quadratwurzel von 9 sollte 3 sein und ist: %g\n\n", x);
  78.  
  79. printf ("sqrt (-9)\n");
  80. timestart = clock ();
  81.     for (i = 1; i < loop; i++)
  82.         x = sqrt (-9);
  83. end();
  84. printf ("Die Quadratwurzel von -9 sollte NaN (Not a Number) sein und ist: %g\n\n", x);
  85.  
  86. /*--ceil--*/
  87. printf ("ceil (80.9394)\n");
  88. timestart = clock ();
  89.     for (i = 1; i < loop; i++)
  90.         x = ceil (a);
  91. end();
  92. printf ("Die nächstgrößere Ganzzahl von 80.9394 sollte 81 sein und ist: %g\n\n", x);
  93.  
  94. printf ("ceil (-80.9394)\n");
  95. timestart = clock ();
  96.     for (i = 1; i < loop; i++)
  97.         x = ceil (b);
  98. end();
  99. printf ("Die nächstgrößere Ganzzahl von -80.9394 sollte -80 sein und ist: %g\n\n", x);
  100.  
  101. /*--frexp--*/
  102. printf ("frexp (9)\n");
  103. timestart = clock ();
  104.     for (i = 1; i < loop; i++)
  105.         x = frexp (9,(void *) &e);
  106. end();
  107. printf ("Die Mantisse von 9 sollte 0.5625 sein und ist: %g\n", x);
  108. printf ("Der Exponent von 9 sollte 4 sein und ist: %d\n\n", e);
  109.  
  110. printf ("frexp (88)\n");
  111. timestart = clock ();
  112.     for (i = 1; i < loop; i++)
  113.         x = frexp (88,(void *) &e);
  114. end();
  115. printf ("Die Mantisse von 88 sollte 0.6875 sein und ist: %g\n", x);
  116. printf ("Der Exponent von 88 sollte 7 sein und ist: %d\n\n", e);
  117.  
  118. /*--modf--*/
  119. printf ("modf (80.9394)\n");
  120. timestart = clock ();
  121.     for (i = 1; i < loop; i++)
  122.         x = modf (a,(void *) &d);
  123. end();
  124. printf ("Der Nachkommateil von 80.9394 sollte 0.9394 sein und ist: %g\n", x);
  125. printf ("Der Vorkommateil von 80.9394 sollte 80 sein und ist: %g\n\n", d);
  126.  
  127. printf ("modf (-80.9394)\n");
  128. timestart = clock ();
  129.     for (i = 1; i < loop; i++)
  130.         x = modf (b,(void *) &d);
  131. end();
  132. printf ("Der Nachkommateil von -80.9394 sollte -0.9394 sein und ist: %g\n", x);
  133. printf ("Der Vorkommateil von -80.9394 sollte -80 sein und ist: %g\n\n", d);
  134.  
  135. /*--fmod--*/
  136. printf ("fmod (5.7, 1.5)\n");
  137. timestart = clock ();
  138.     for (i = 1; i < loop; i++)
  139.         x = fmod (5.7,1.5);
  140. end();
  141. printf ("Das Ergebnis dieser Funktion sollte 1.2 sein und ist: %g\n\n", x);
  142.  
  143. printf ("fmod (-5.7, 1.5)\n");
  144. timestart = clock ();
  145.     for (i = 1; i < loop; i++)
  146.         x = fmod (-5.7,1.5);
  147. end();
  148. printf ("Das Ergebnis dieser Funktion sollte -1.2 sein und ist: %g\n\n", x);
  149.  
  150. /*--ldexp--*/
  151. printf ("ldexp (9, 3)\n");
  152. timestart = clock ();
  153.     for (i = 1; i < loop; i++)
  154.         x = ldexp (9,3);
  155. end();
  156. printf ("Das Produkt von 9 * (2³) sollte 72 sein und ist: %g\n\n", x);
  157.  
  158. printf ("ldexp (-9, 3)\n");
  159. timestart = clock ();
  160.     for (i = 1; i < loop; i++)
  161.         x = ldexp (-9,3);
  162. end();
  163. printf ("Das Produkt von -9 * (2³) sollte -72 sein und ist: %g\n\n", x);
  164.  
  165. /*--cos--*/
  166. printf ("cos (0)\n");
  167. timestart = clock ();
  168.     for (i = 1; i < loop; i++)
  169.         x = cos (0);
  170. end();
  171. printf ("Der Cosinus von 0 sollte 1 sein und ist: %g\n\n", x);
  172.  
  173. printf ("cos (1)\n");
  174. timestart = clock ();
  175.     for (i = 1; i < loop; i++)
  176.         x = cos (1);
  177. end();
  178. printf ("Der Cosinus von 1 sollte 0.540302 sein und ist: %g\n\n", x);
  179.  
  180. Permit ();
  181.  
  182. printf ("Gesamtzeit für %d Durchgänge: %.5g  s\n", loop, z);
  183.  
  184. exit (0);
  185.  
  186. }
  187.